package FunkcjePrzynaleznosci;

public class DrugorzedneFunkcjePrzynaleznosciFabryka {

	public static IFunkcjaPrzynaleznosci getFunkcjaPrzynaleznosci(String typ, float szerokosc, float srodek){
		if(IFunkcjaPrzynaleznosci.GAUSSOWSKA.equalsIgnoreCase(typ)){
			return new GaussowskaFunkcjaPrzynaleznosci(srodek, szerokosc);
		}
		if(IFunkcjaPrzynaleznosci.TROJKATNA.equalsIgnoreCase(typ)){
			return new TrojkatnaFunkcjaPrzynaleznosci(srodek - szerokosc, srodek, srodek + szerokosc);
		}
		if(IFunkcjaPrzynaleznosci.JEDNOSTKOWA.equalsIgnoreCase(typ)){
			return new JednostkowaFunkcjaPrzynaleznosci();
		}
		if(IFunkcjaPrzynaleznosci.PROSTOKATNA.equalsIgnoreCase(typ)){
			return new ProstokatnaFunkcjaPrzynaleznosci(srodek - szerokosc, srodek + szerokosc);
		}
		
		throw new IllegalArgumentException("Nie mozna utworzyc drugorzednej funkcji przynaleznosci typu: "+typ);
	}
	
}
